IC cards are known and have evolved to include an onboard microprocessor and an onboard nonvolatile memory embedded in the IC card. In the advanced IC cards, the nonvolatile memory is rewritable, and such a feature allows recorded information to be updated. As a result, such cards can be used as transaction cards, in which data relating to a transaction can be recorded when the transaction is made and later read out for the purpose of updating the account of the card holder.
In such cards, when a series of transaction data is to be recorded, there is typically a section of semiconductor memory set aside for recording transaction data, and that section of memory is divided into separate blocks, each adapted to hold data relating to a single transaction. For example, if information to be recorded in the IC card relates to commercial transactions, data representing the time and details of each transaction are recorded in the respective blocks, preferably in time sequence. In general, it is very convenient to handle such time-series data in the order in which the data is generated. Typically, the oldest data is the first to lose its usefulness, and thus when it becomes expendable the locations in which the oldest data is recorded can be overwritten, allowing the IC card to be used for many more transactions than would be possible based on a limit set by the number of application blocks in the limited memory. When all of the allocated blocks are filled, however, it is necessary to make previously recorded blocks available for recording new information. The blocks which can be made available are those containing the oldest information which has already been read out by the application program so that it is no longer needed.
Since it is the application program which has a need to store and later relocate the data, it has been the practice for the application program itself to define an address in the onboard semiconductor memory, so that the application program has the address information for later retrieval of that data. But, if the application program is solely charged with determining the oldest data to provide new locations for recording new data, each time it is desired to record a new element of data, it is necessary for the application program to read out and examine all of the data in all of the blocks to isolate the oldest data record before it can record the new data record. Considering the fact that a complex network can include many IC cards used randomly in a variety of widely dispersed terminals, it will be appreciated that a considerable load can be placed on the application program if it solely has to determine the oldest data in order to record new data for each transaction.